The invention relates to color interpolation.
FIG. 1 shows a semiconductor imager 10 (e.g., a complementary metal-oxide semiconductor (CMOS) imager) might be used to electrically capture “snapshots” of an optical image. The imager is used to convert an optical image into an electrical representation. The imager 10 accomplishes this conversion through the use of an array of sensing elements arranged as pixel cells 12 that sense the intensity of light coming from the image. The “exposure time” for each snapshot depends on an integration interval during which each pixel cell 12 integrates an indication of the number of photons of light striking the cell 12 (i.e., measures an intensity of light striking the cell 12) and provides an indication of the integrated value via an analog output signal. For CMOS imagers, on-chip analog conditioning circuitry 14 (e.g., circuitry to perform correlated double sampling and gain control) and an analog-to-digital converter (ADC) 16 process the analog outputs of the pixel cells 12 to provide a digital representation of the image which can be retrieved from the imager 10 through a parallel port interface 18.
The pixel cells 12 provide an indication of the intensity of light striking the cell 12. Hence, the above-described arrangement may be used to produce a monochrome or luminance only representation of the image. However, to produce color representations of the image, the imager also needs to provide information about primary colors (e.g., red, green and blue colors) of the image. To accomplish this, each pixel cell 12 is configured to sense the intensity level of light in one of the primary color bands. A typical way to accomplish this is to cover each pixel cell 12 with a spectrum-discriminating filter (e.g., a filter that only allows a red, green or blue color band to pass through the filter). As a result, some pixel cells 12 sense red light, some pixel cells 12 sense green light and some pixel cells 12 sense blue light. As an example, a multi-band filter pattern 20 (see FIG. 2) placed over the array of pixel cells 12 may have alternating red, green and blue filter stripes that extend along the columns of the array. Thus, each filter stripe of the pattern 20 configures one of the columns of the array to sense light in one of the primary color bands. As another example, the filter pattern may be checkered, instead of striped.
Each pixel cell 12 captures a portion of the image. To maximize the resolution of the image when reproduced on a display, it is desirable to form a one-to-one correspondence between the pixel cells 12 of the imager 10 and pixels of the display. However, with color imagers, three adjacent pixel cells 12 (each pixel cell 12 sensing a different primary color band) are typically used to provide the information needed to form one pixel on the display. Thus, when used to capture color images, the effective display pixel resolution of the imager 10 typically is one third of the actual pixel cell 12 resolution.
For purposes of preserving a one-to-one correspondence between the pixel cells 12 and the pixels of the display, one solution is to form an imager having three times as many pixel cells as corresponding pixels of the display to compensate for the three primary colors. Referring to FIG. 3, another solution is to use three imagers 22, 24, and 28, one for each primary color band of the image. Thus, for example, one imager 22 (covered by a red filter) senses red light, one imager 24 (covered by a green filter) senses green light, and one imager 26 (covered by a blue filter) senses the blue light coming from the image. Dichroic plates 28 may be used to split the light into beams into its primary colors.
Referring to FIG. 4, a third solution might be to use an off chip discrete-time signal processing (DSP) engine 30 to interpolate the two missing colors for each pixel cell 12. To accomplish this, the DSP engine 30 processes the color information provided by adjacent pixel cells 12. Typically, nearest neighbors are weighted with predetermined coefficients and averaged to determine a color at a particular pixel cell location. For example, referring back to FIG. 1, a pixel cell 12a that is covered by a red filter provides a representation of a red color of the portion of the image striking the cell 12a. To ascertain the blue color of the portion of the image otherwise striking the cell 12a (if not for the red filter), the DSP engine 30 averages (a weighted representation of) the outputs of adjacent pixel cells 12b and 12c (i.e., adjacent pixel cells covered by a blue filter) to interpolate the missing blue color. The DSP engine 30 also interpolates the green color of the portion of the image that would other strike the cell 12a in a similar manner.